
// 题目描述

// 小鹿想输入一些整数数字，输入-1停止输入。在输入一个数字n，统计在这些数字中，n出现了多少次。请你编写代码帮助小鹿实现吧。


// 输入描述

// 共2行，第一行，一些整数数字，最后一个数字为-1。第二行，一个整数n，表示要查找的数字。


// 输出描述

// 一个整数，表示n出现的次数。


//  样例输入 1 

// 6 1 2 3 4 6 5 3 3 2 1 3 -1
// 3
//  样例输出 1 

// 4

#include <iostream>
using namespace std;

// 定义链表节点结构
struct Node {
    int num;      // 存储数字
    Node* next;   // 指向下一个节点的指针
};

int main() {
    Node* head = NULL;  // 链表头指针，初始为空
    int n;              // 临时变量，用于存储输入的数字
    
    // 输入数字，直到输入-1为止
    while (cin >> n && n != -1) {
        // 创建新节点
        Node* newNode = new Node();
        newNode->num = n;
        newNode->next = NULL;
        
        // 如果链表为空，新节点就是头节点
        if (head == NULL) {
            head = newNode;
        } else {
            // 否则，找到链表的最后一个节点，把新节点接在后面
            Node* p = head;
            while (p->next != NULL) {
                p = p->next;
            }
            p->next = newNode;
        }
    }
    
    // 输入要查找的数字x
    int x;
    cin >> x;
    
    // 统计x出现的次数
    int cnt = 0;
    Node* p = head;
    while (p != NULL) {
        if (p->num == x) {
            cnt++;
        }
        p = p->next;  // 移动到下一个节点
    }
    
    // 输出结果
    cout << cnt << endl;
    
    // 释放链表占用的内存
    while (head != NULL) {
        Node* p = head;  // 保存当前头节点
        head = head->next;  // 头节点指向下一个节点
        delete p;        // 释放之前的头节点
    }
    
    return 0;
}